/* app_fir_data.c */
#include "app_fir_data.h"

/*******************************************************************************
 * Variables
 ******************************************************************************/
/* FIR输入队列. */
float32_t fir_input_x_f32[FIR_INPUT_NUM] =
{
    0.11f, 0.22f, 0.33f, 0.44f, 0.55f, 0.66f
};

float32_t fir_input_x_f32_2[FIR_INPUT_NUM+1];

/* 根据CMSIS-DSP文档描述, 比例延时因子的排序跟实际是相反的.
* 这倒是跟相关性计算的设定颇为一致. */
float32_t fir_coeff_b_f32_reversed[FIR_COEFF_NUM] =
{
    0.4f, 0.3f, 0.2f, 0.1f /* 它们实际对应b[3], b[2], b[1], b[0]. */
};

float32_t fir_coeff_b_f32[FIR_COEFF_NUM] =
{
    0.1f, 0.2f, 0.3f, 0.4f /* 它们实际对应b[0], b[1], b[2], b[3]. */
};


float32_t fir_state_f32[FIR_INPUT_NUM+FIR_COEFF_NUM-1]; /* CMSIS-DSP计算FIR需要用户提供内存存放中间变量. */
float32_t fir_output_y_f32[FIR_CONV_OUTPUT_NUM]; /* FIR输出队列. 在FIR计算模式下只用到了FIR_INPUT_NUM个 */
/*
= {
    y[0] = 0.1 * 0.11                                        = 0.011                         = 0.011
    y[1] = 0.1 * 0.22 + 0.2 * 0.11                           = 0.022 + 0.022                 = 0.044
    y[2] = 0.1 * 0.33 + 0.2 * 0.22 + 0.3 * 0.11              = 0.033 + 0.044 + 0.033         = 0.11
    y[3] = 0.1 * 0.44 + 0.2 * 0.33 + 0.3 * 0.22 + 0.4 * 0.11 = 0.044 + 0.066 + 0.066 + 0.044 = 0.22
    y[4] = 0.1 * 0.55 + 0.2 * 0.44 + 0.3 * 0.33 + 0.4 * 0.22 = 0.055 + 0.088 + 0.099 + 0.088 = 0.33
    y[5] = 0.1 * 0.66 + 0.2 * 0.55 + 0.3 * 0.44 + 0.4 * 0.33 = 0.066 + 0.11  + 0.132 + 0.132 = 0.44
    // 继续执行卷积计算
    y[5] =              0.2 * 0.66 + 0.3 * 0.55 + 0.4 * 0.44 =         0.132 + 0.165 + 0.196 = 0.473
    y[6] =                           0.3 * 0.66 + 0.4 * 0.55 =                 0.198 + 0.22  = 0.418
    y[7] =                                        0.4 * 0.66 =                         0.264 = 0.264
}
*/

/* EOF. */

